package com.ai.dmc.utils.export.excelhelper;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.http.HttpServletResponse;

public class DownloadFactory {

	/** 下载文件 
	 * @throws FileNotFoundException */
	public void downloadfile(HttpServletResponse response,String fileName) throws FileNotFoundException{
		 try {   
			    //为空不下载
				if(response==null){
					  return;
				}
			 // path是指欲下载的文件的路径。   
	            File file = new File(fileName);   
	            // 取得文件名。   
	            String filename = file.getName();   
	            // 取得文件的后缀名。   
	            //String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();   
	  
	            // 以流的形式下载文件。   
	            InputStream fis = new BufferedInputStream(new FileInputStream(fileName));   
	            byte[] buffer = new byte[fis.available()];   
	            fis.read(buffer);   
	            fis.close();   
	            // 清空response   
	            response.reset();   
	            // 设置response的Header   
	            response.addHeader("content-disposition", "attachment;filename=\""
	                    + java.net.URLEncoder.encode(filename, "UTF-8")
	                    + "\"");
	            response.addHeader("Content-Length", "" + file.length());   
	            OutputStream toClient = new BufferedOutputStream(response.getOutputStream());   
	            response.setContentType("application/octet-stream");   
	            toClient.write(buffer);   
	            toClient.flush();   
	            toClient.close();
	        } catch (IOException ex) {   
	            ex.printStackTrace();   
	        }   
	}
}
